package com.bamboo.pistorage.provider;

import com.bamboo.model.enums.FileTypeEnum;

import java.io.File;
import java.util.List;

/**
* @description 检测文件是否满足上传条件
 * <p>
 *        1. 检测文件是否为空
 *        2. 检测文件是否存在
 *        3. 检测文件是否是文件
 *        4. 检测文件大小是否超过限制
 *        5. 检测文件类型是否符合要求
 * </p>
* @date 2025/4/3 上午10:19
* @author chenzh
*/
public interface IFileCheckerProvider {
    /**
     * @description 检测文件是否满足上传条件
     * @date 2025/4/3 上午10:23
     * @author chenzh
     * @param file 待上传的文件
     */
    void check(File file);

    /**
     * @description 获取允许上传的文件的最大大小
     * @date 2025/4/3 上午10:23
     * @author chenzh
     * @return long
     */
    long getMaxFileSize(FileTypeEnum type);

    /**
     * @description 获取允许上传的文件类型
     * @date 2025/4/3 上午10:23
     * @author chenzh
     * @return List<String>
     */
    List<String> getAllowFileTypes();
}
